//
//  SpreadProtocol.h
//  SujetObserver
//
//  Created by Pierre DUCHENE on 14/02/10.
//  Copyright 2010 Pierre DUCHENE. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "SensorData.h"

@protocol SensorProtocol;
@protocol SubjectProtocol;

/*!
    @protocol    SpreadProtocol <NSObject>
    @abstract    Interface wich represent the Strategy in Strategy Pattern.
    @discussion  Using by configure the spread with a sensor.
				 This strategy may be use by the Sensor(Client) to get real sensor data
*/
@protocol SpreadProtocol <NSObject>

/*!
    @method     configureWithContext:
    @abstract   Method used to configure the strategy whith a context
	@param      aSensor The context for the strategy
*/
- (void)configureWithContext:(id<SensorProtocol,SubjectProtocol>)aSensor;

/*!
    @method     execute
    @abstract   Execute the strategy
*/
- (void)execute;

/*!
    @method     sensorData
    @abstract   This method return the data compute by the strategy
    @result     The data compute by the strategy
*/
- (SensorData*)sensorData;

@end
